home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / comm / net / AMarquee49.readme < prev    next >
Text File  |  1999-03-02  |  11KB  |  220 lines

  1. Short:    V49.7 TCP Data Broadcast System (library & server)
  2. Author:   hparting@hem.passagen.se (Håkan Parting & Jeremy Friesner)
  3. Uploader: hparting@hem.passagen.se (Håkan Parting)
  4. Version:  49.7
  5. Type:     comm/net
  6. Requires: Workbench 2.04+, Inet225 or AmiTCP3.0b+ or compatible TCP stack
  7. Replaces: comm/net/AMarquee1.48.lha
  8.  
  9. ----------------------------------------------------------------
  10.  
  11.                           AMARQUEE v49.7
  12.  
  13.                     (Released February 14th 1999)
  14.  
  15. ----------------------------------------------------------------
  16.  
  17.  
  18. The Problem: 
  19.  
  20.  You have a great idea for a killer multi-player Internet game 
  21.  or multi-user net app, but it's a total pain in the @)#$* to 
  22.  write all the TCP connection and data synchronization code 
  23.  you'll need to get it going.  So you put your idea on the 
  24.  back-burner and go play "Lemmings" instead.  And thus the 
  25.  Amiga is deprived of a fun Internet app.  D-oh!  :(
  26.  
  27. The Solution:  (well, okay, it's *a* solution, anyway)
  28.  
  29.  AMarquee is a system that handles all of the icky information 
  30.  distribution details for you, allowing you to concentrate on 
  31.  coding your application, rather than on which data goes into 
  32.  which socket when.  AMarquee consists of a shared library and
  33.  a TCP daemon, which work together to get your data where it
  34.  needs to be.  Your program calls simple amarquee.library
  35.  functions to broadcast your data, and waits on a provided
  36.  MsgPort for data from other hosts.  Easy!
  37.  
  38.  Note that this now (from v.49) also work with any TCP service, like HTTP,
  39.  FTP and so on.
  40.  
  41. Features of amarquee.library (the shared library/API):
  42.  
  43.  - Programs written to use amarquee.library will work transparently
  44.    with Inet225, AmiTCP, Miami, or any other TCP stack that is 
  45.    "AmiTCP compatible".
  46.  - Has a simple API that requires no knowledge of multithreading 
  47.    techniques or socket programming to use.
  48.  - Each AMarquee connection you make automatically and transparently
  49.    starts a separate background execution thread, so your app will 
  50.    never have to block while data is sent or received.
  51.  - An arbitrary number of AMarquee connections may be active at once.
  52.  - Allows you to "subscribe" to data that interests you, so that
  53.    when the data on the server is changed you will be automatically 
  54.    notified.  You never need to poll for anything!
  55.  - An easy mechanism for sending messages to one or many other
  56.    AMarquee clients that are logged into the same server.
  57.  - Standard Amiga wildcarding is supported in all applicable functions.
  58.    This allows you to easily and succinctly refer to one host or data
  59.    item, or many, as appropriate.
  60.  - #includes for C, C++, and PCQ Pascal are included.
  61.  - ARexx accessible.  That is, ARexx scripts can use amarquee.library
  62.    through rexxamarquee.library for communications using the same API
  63.    that compiled C programs do.
  64.  - Example programs in C, C++, Pascal, and ARexx are included.
  65.  - Operation is almost totally asynchronous for efficiency, but
  66.    several easy synchronization methods are available if you need them.
  67.  - Can also be used for direct client-to-client connections and
  68.    for making inetd-launched or manually-launched daemon programs.
  69.  - Automatically detects when the computer on the other end of
  70.    the AMarquee connection has crashed or been shut down, even 
  71.    on idle connections.
  72.  - Can connect to any TCP servive, eg. HTTP and FTP, and it will work in
  73.    the same easy fashion like any other AMarquee connection.
  74.  
  75. Features of AMarqueed (the AmiTCP server):
  76.  
  77.  - Works with Inet225, AmiTCP, Miami, or any other TCP stack 
  78.    that is "AmiTCP compatible".
  79.  - Fully multithreaded design, with one server process per connection.
  80.  - Re-entrant code, to minimize memory usage.
  81.  - Data is stored in a filesystem-like tree structure for simplicity,
  82.    flexibility and efficiency.  Each client gets its own "home directory"
  83.    that it may write to or read from, and each client may also
  84.    read from the "home directories" of other clients.
  85.  - Efficient design minimizes CPU usage, net bandwidth, and execution time.
  86.  - Limits may be put on memory usage, number of connections, and/or 
  87.    which clients or apps may connect.  Only serve the hosts and apps
  88.    you want to serve!
  89.  - Supports data streaming to one or many clients at once.
  90.  - Data streaming and synchronization features let you be sure your 
  91.    data was read by all interested hosts before you update it again.
  92.  - Automatically detects and eliminates "dead" connections (e.g.
  93.    if the client computer was shut down without quitting politely)
  94.  - Server may be administered remotely by clients with "privileged"
  95.    status.
  96.  
  97. WHAT'S NEW IN VERSION 49.6:
  98. ( "-" = new feature, "*" = bug fix)
  99.  
  100. V49.7 : (Public Release 14-Feb-1999) (amarquee.library v49.6, AMarqueed v49.7)
  101.  
  102. *   The fd-file and the inline include file for GCC had errors.
  103.  
  104. *   Race condition in AMarqueed fixed. Could only happen when no host were
  105.     connected to the server, and then suddenly two or more hosts connected to
  106.     the server in exactly the same moment. The two connecting hosts would then
  107.     be connected to two seperate isolated server instances running on the server
  108.     computer.
  109.     If those hosts were connecting with for example AmiComSys one of them would
  110.     only see himself in the client list.    
  111.  
  112. -   Added AMARQUEED_RESTRICTBROWSE and AMARQUEED_ALLOWBROWSE @{"environment variables" link UsingAMarqueed}
  113.  
  114. -   The library was not updated in this release.
  115.  
  116. V49.6 : (Public Release 16-Jan-1999) (amarquee.library v49.6)
  117.  
  118.  - AMarquee.library development taken over by Håkan Parting after Jeremy had ceased
  119.    development for Amiga.
  120.  * Fixed major bug in AMarqueed:
  121.    In certain circumstances it was possible to get attributes one
  122.    was not subscribing to. Eg. If a client subscribed to /happyhost.com/QAmiTrack/name
  123.    and /nothappyhost.com/QAmiTrack/comment, one would get 'comment'  from happyhost.com
  124.    and 'name' from nothappyhost.com in addition to what one wanted to receive.
  125.    If you subscribed on /localhost/QAmiTrack/comment and /qamitrack.tibb.at/QAmiTrack/comment.
  126.    You would receive two QMessages when one of these clients modify its data.
  127.    (Thanks to myself for fixing this! :)  
  128.  * Fixed certain things to make it compile right with DICE 3.0, instead of former DICE 2.0
  129.    compilation.
  130.  * Exchanged Forbid() and Permit() 's with Semaphores, so the multitasking won't get disabled
  131.    in unnecessary situations.
  132.  - JAVA 1.0.2 version of AMarquee, called JAMarquee, available at
  133.    http://hem.passagen.se/hparting/jamarquee/
  134.  - Moved the Arexx piece of code into a new library named, rexxamarquee.library. Use it instead
  135.    of amarquee.library. The lib-offset is now -30 as with any other ARexx-function-library.
  136.  - Added QNewSocketSession(), QNewSocketSessionAsync() and QNewSocketServerSession() functions
  137.    to the library.
  138.  - Added QSendRawOp() function to the library.
  139.  - Added QSetKeyAccessOp() function to the library.
  140.  - Added support for access restrictions on the keys in AMarqueed (for use with
  141.    QSetKeyAccessOp()).
  142.  * Fixed memory leakage that happened every time the client got a ping from the server :)
  143.  - Added QGetHostName() and QGetProgName() functions to the library.
  144.  
  145. 1.48 : (Public Release 10-Apr-1998) (amarquee.library v48)
  146.  * Both amarquee.library and AMarqueed could crash on 68000
  147.    or 68010 processors, as they didn't always keep their data
  148.    aligned to word boundaries.  Fixed.  (Thanks to Mike 
  149.    Constantine for his help with this!)
  150.  
  151.  
  152. ============================= Archive contents =============================
  153.  
  154. Original  Packed Ratio    Date     Time    Name
  155. -------- ------- ----- --------- --------  -------------
  156.     1233     595 51.7% 10-Apr-98 12:24:44  AMarquee.info
  157.   194705   53729 72.4% 14-Feb-99 18:19:54 +amarquee.guide
  158.     1542    1096 28.9% 10-Apr-98 12:24:46 +AMarquee.guide.info
  159.    23616   12854 45.5% 16-Jan-99 18:18:26 +amarquee.library
  160.    23624   12885 45.4% 16-Jan-99 18:18:44 +amarquee.library.inet225
  161.      152     152  0.0% 16-Jan-99 18:57:16 +amarquee.library.inet225.sig
  162.      152     152  0.0% 16-Jan-99 18:52:32 +amarquee.library.sig
  163.     7461    3317 55.5% 14-Feb-99 18:25:16 +AMarquee.readme
  164.      835     268 67.9% 10-Apr-98 12:24:44 +AMarquee.readme.info
  165.    46412   23901 48.5% 14-Feb-99 18:11:16 +AMarqueed
  166.    46256   23823 48.4% 14-Feb-99 18:11:16 +AMarqueed.inet225
  167.      151     151  0.0% 14-Feb-99 18:15:36 +AMarqueed.inet225.sig
  168.      152     152  0.0% 14-Feb-99 18:15:12 +AMarqueed.sig
  169.     4123    1604 61.0% 10-Apr-98 12:24:48 +EditTextFile.rexx
  170.    10964    6337 42.2% 16-Jan-99 18:20:06 +amarqueedebug
  171.     7153    2394 66.5% 16-Jan-99 18:20:06 +amarqueedebug.c
  172.     6753    2323 65.6% 10-Apr-98 12:24:50 +amarqueedebug.cpp
  173.     7058    2305 67.3% 16-Jan-99 18:20:04 +amarqueedebug.rexx
  174.    12920    7206 44.2% 16-Jan-99 18:20:04 +AMarqueeDebugMultiThread
  175.     9537    3191 66.5% 16-Jan-99 18:20:04 +AMarqueeDebugMultiThread.c
  176.     9200    5495 40.2% 16-Jan-99 18:20:06 +AMarqueeHost
  177.     4175    1563 62.5% 16-Jan-99 18:20:06 +amarqueehost.c
  178.     6383    2116 66.8% 16-Jan-99 18:20:04 +amarqueehost.rexx
  179.    11868    6923 41.6% 16-Jan-99 18:20:06 +AMarqueeServer
  180.     5307    1924 63.7% 16-Jan-99 18:20:06 +AMarqueeServer.c
  181.    10228    6053 40.8% 16-Jan-99 18:20:06 +amarqueesocketdebug
  182.     5870    2209 62.3% 16-Jan-99 18:20:06 +amarqueesocketdebug.c
  183.     8808    5388 38.8% 16-Jan-99 18:20:06 +amarqueesockethost
  184.     3590    1516 57.7% 16-Jan-99 18:20:06 +amarqueesockethost.c
  185.     7400    4731 36.0% 16-Jan-99 18:20:06 +BounceCount
  186.     2910    1167 59.8% 16-Jan-99 18:20:06 +BounceCount.c
  187.      522     275 47.3% 16-Jan-99 18:20:06 +dmakefile
  188.      494     262 46.9% 10-Apr-98 12:24:52 +dmakefile.bak
  189.     2431    1104 54.5% 16-Jan-99 18:20:06 +killclients.rexx
  190.    10408    6410 38.4% 16-Jan-99 18:20:06 +MiniIRC
  191.     6379    2171 65.9% 16-Jan-99 18:20:06 +MiniIRC.c
  192.     3336    1984 40.5% 16-Jan-99 18:20:06 +PascalTest
  193.     1139     502 55.9% 16-Jan-99 18:20:06 +PascalTest.p
  194.     6984    4444 36.3% 16-Jan-99 18:20:06 +RemoveTest
  195.     2546    1035 59.3% 16-Jan-99 18:20:06 +RemoveTest.c
  196.     9324    5734 38.5% 16-Jan-99 18:20:06 +SillyGame
  197.     8214    2586 68.5% 16-Jan-99 18:20:06 +SillyGame.c
  198.     7404    4711 36.3% 16-Jan-99 18:20:06 +StreamCheck
  199.     3132    1242 60.3% 16-Jan-99 18:20:06 +StreamCheck.c
  200.     7276    4628 36.3% 16-Jan-99 18:20:06 +StreamGen
  201.     2612    1090 58.2% 16-Jan-99 18:20:06 +streamgen.c
  202.     7456    4717 36.7% 16-Jan-99 18:20:06 +SyncTest
  203.     3250    1302 59.9% 16-Jan-99 18:20:06 +SyncTest.c
  204.     2649    1169 55.8% 16-Jan-99 18:20:06 +sysmessage.rexx
  205.     5301    1358 74.3% 14-Feb-99 18:12:22 +AMarquee_protos.h
  206.     1584     507 67.9% 14-Feb-99 18:11:52 +AMarquee_lib.fd
  207.     7072    1265 82.1% 14-Feb-99 18:12:00 +AMarquee.h
  208.     4161    1701 59.1% 16-Jan-99 18:19:38 +AMarquee.h
  209.     2177     522 76.0% 16-Jan-99 18:19:38 +AMarquee_pragmas.h
  210.      409     217 46.9% 16-Jan-99 18:19:38 +AMarquee.h
  211.    12212    2878 76.4% 16-Jan-99 18:19:38 +Session.h
  212.    24313    6008 75.2% 16-Jan-99 18:28:12 +Install_AMarquee
  213.      612     329 46.2% 10-Apr-98 12:24:48 +Install_AMarquee.info
  214.     7944    2205 72.2% 16-Jan-99 18:19:32 +AMarquee.i
  215.     5152     710 86.2% 14-Feb-99 18:12:36 +AMarquee.lib
  216.    12836    6662 48.0% 16-Jan-99 18:22:08 +rexxamarquee.library
  217.      152     152  0.0% 16-Jan-99 18:58:14 +rexxamarquee.library.sig
  218. -------- ------- ----- --------- --------
  219.   650019  267400 58.8% 18-Feb-99 21:31:50   62 files
  220.